package com.atguigu.gmall.product.service.impl;


import com.atguigu.gmall.model.product.SkuAttrValue;
import com.atguigu.gmall.model.product.SkuImage;
import com.atguigu.gmall.model.product.SkuInfo;
import com.atguigu.gmall.model.product.SkuSaleAttrValue;
import com.atguigu.gmall.product.mapper.SkuAttrValueMapper;
import com.atguigu.gmall.product.mapper.SkuImageMapper;
import com.atguigu.gmall.product.mapper.SkuInfoMapper;
import com.atguigu.gmall.product.mapper.SkuSaleAttrValueMapper;
import com.atguigu.gmall.product.service.SkuInfoService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @author h8467
 * @description 针对表【sku_info(库存单元表)】的数据库操作Service实现
 * @createDate 2022-11-01 14:01:54
 */
@Service
public class SkuInfoServiceImpl extends ServiceImpl<SkuInfoMapper, SkuInfo>
        implements SkuInfoService {

    @Autowired
    SkuImageMapper skuImageMapper;
    @Autowired
    SkuAttrValueMapper skuAttrValueMapper;
    @Autowired
    SkuSaleAttrValueMapper skuSaleAttrValueMapper;

    @Override
    public Page<SkuInfo> getList (Long pn, Long pz) {
        Page<SkuInfo> page = new Page<> (pn, pz);
        Page<SkuInfo> skuInfoPage = this.page (page);
        return skuInfoPage;
    }

    @Override
    public Void saveSkuInfo (SkuInfo skuInfo) {

        this.save (skuInfo);
        Long skuId = skuInfo.getId ();
        Long spuId = skuInfo.getSpuId ();
        if (skuInfo.getSkuImageList ().size () > 0) {
            for (SkuImage skuImage : skuInfo.getSkuImageList ()) {
                skuImage.setSkuId (skuId);
                this.skuImageMapper.insert (skuImage);
            }
        }
        if (skuInfo.getSkuAttrValueList ().size () > 0) {
            for (SkuAttrValue skuAttrValue : skuInfo.getSkuAttrValueList ()) {
                skuAttrValue.setId (skuId);
                this.skuAttrValueMapper.insert (skuAttrValue);
            }
        }
        if (skuInfo.getSkuSaleAttrValueList ().size () > 0) {
            for (SkuSaleAttrValue skuSaleAttrValue : skuInfo.getSkuSaleAttrValueList ()) {
                skuSaleAttrValue.setSkuId (skuId);
                skuSaleAttrValue.setSpuId (spuId);
                this.skuSaleAttrValueMapper.insert (skuSaleAttrValue);
            }
        }
        return null;
    }
}




